home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / presto / presto10.lha / src / machdep.h < prev    next >
C/C++ Source or Header  |  1991-12-11  |  1KB  |  47 lines

  1. #ifndef __presto__machdep_h__
  2. #define __presto__machdep_h__
  3.  
  4. #ifdef sequent
  5. // STACK GROWS DOWN
  6. #define FP(p)        ( (int*)(&p+1) )
  7. #define STACK_BASE(b,s)     b + s - 1
  8. #define COPY_STACK(f,c,t)   while (c--) *t-- = *f--
  9. #define ACTIVE_STK_SZ(b,t)  b - t + 1    /* size of active stack */
  10. #define PUSH(sp,word)        { *sp-- = word;}
  11. #define SAVPC(fp)    (int*)*((fp+1))
  12. #define SAVFP(fp)    (int*)*(fp)
  13. #endif /* sequent */
  14.  
  15. #ifdef vax
  16. //
  17. // All just the same as on the sequent...
  18. //
  19. #define FP(p)        ( (int*)(&p+1) )
  20. #define STACK_BASE(b,s)     b + s - 1
  21. #define COPY_STACK(f,c,t)   while (c--) *t-- = *f--
  22. #define ACTIVE_STK_SZ(b,t)  b - t + 1    /* size of active stack */
  23. #endif /* vax */
  24.  
  25. #ifdef sun     
  26. // STACK GROWS UP, not down.
  27. //
  28. //#define FP(p)        ( (int*)(&p+1) )
  29. //#define STACK_BASE(b,s)     b + s - 1
  30. //#define COPY_STACK(f,c,t)   while (c--) *t-- = *f--
  31. //#define ACTIVE_STK_SZ(b,t)  b - t + 1    /* size of active stack */
  32. //#define PUSH(sp,word)        { *sp-- = word;}
  33. //#define SAVPC(fp)    (int*)*((fp+1))
  34. //#define SAVFP(fp)    (int*)*(fp)
  35. #endif /* sun */
  36.  
  37. #ifdef mips
  38. extern void MipsSaveSP(int*);
  39. extern void MipsRestoreSP(int);
  40. #define FP(p)        ( MipsSaveSP(&p), (int*)p )
  41. #define STACK_BASE(b,s)     b + s - 1
  42. #define COPY_STACK(f,c,t)   while (c--) *t-- = *f--
  43. #define ACTIVE_STK_SZ(b,t)  b - t + 1    /* size of active stack */
  44. #endif /* mips */
  45.  
  46. #endif /* __presto__machdep_h__ */
  47.